package com.wicket.okrcalc.integration.dto;

import com.wicket.okrcalc.common.dto.BaseDto;
import com.wicket.okrcalc.integration.dto.DeptAchievementDockingDto;
import com.wicket.okrcalc.integration.dto.TargetContentAchievementDockingDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * @desc StatisticsPerformanceAchievementNumComRespDto
 * @使用场景
 */
@Data
public class StatisticsPerformanceAchievementNumComRespDto
  extends BaseDto
  implements Serializable {

  /**
   * 成果统计类型 STATISTICS_BY_ACHIEVEMENT_TYPE:按成果类型统计 STATISTICS_BY_ACHIEVEMENT_GRACE:按成果等级统计
   */
  @ApiModelProperty("目标内容成果统计类型")
  private String achievementStatisticsType;

  /**
   * 目标内容成果统计数
   */
  @ApiModelProperty("目标内容成果统计数")
  private Long targetContentCalcCount;

  /**
   * 目标内容统计-被评对象内容表主键ID
   */
  @ApiModelProperty("目标内容统计-被评对象内容表主键ID")
  private String tarConCouEvaObjEntityId;

  /**
   * 目标内容统计-目标内容标识
   */
  @ApiModelProperty("目标内容统计-目标内容标识")
  private String tarConCouTargetContentCode;

  /**
   * 目标内容统计-目标周期周期ID
   */
  @ApiModelProperty("目标内容统计-目标周期周期ID")
  private String tarConCouCycleId;

  /**
   * 目标内容统计-目标计划开始时间
   */
  @ApiModelProperty("目标内容统计-目标计划开始时间")
  private Date tarConCouCycleStartTime;

  /**
   * 目标内容统计-目标计划结束时间
   */
  @ApiModelProperty("目标内容统计-目标计划结束时间")
  private Date tarConCouCycleEndTime;

  @ApiModelProperty("目标内容成果统计列表")
  private List<TargetContentAchievementDockingDto> targetContentAchievementDockingList = new ArrayList<>();

  /**
   * 所属主体成果统计数
   */
  @ApiModelProperty("所属主体成果统计数")
  private Long deptCalcCount;

  /**
   * 所属主体统计-被评对象内容表主键ID
   */
  @ApiModelProperty("所属主体统计-被评对象内容表主键ID")
  private String deptCouEvaObjEntityId;

  /**
   * 所属主体统计-被评对象目标周期ID
   */
  @ApiModelProperty("所属主体统计-被评对象目标周期ID")
  private String deptCouEvaObjTargetCycleId;

  /**
   * 所属主体统计-关联目标内容ID
   */
  @ApiModelProperty("所属主体统计-关联目标内容ID")
  private String deptCouTargetCycleContentId;

  /**
   * 所属主体统计-目标周期周期ID
   */
  @ApiModelProperty("所属主体统计-目标周期周期ID")
  private Date deptCouCycleId;

  /**
   * 所属主体统计-目标计划开始时间
   */
  @ApiModelProperty("所属主体统计-目标计划开始时间")
  private Date deptCouCycleStartTime;

  /**
   * 所属主体统计-目标计划结束时间
   */
  @ApiModelProperty("所属主体统计-目标计划结束时间")
  private Date deptCouCycleEndTime;

  @ApiModelProperty("所属主体成果统计列表 ")
  private List<DeptAchievementDockingDto> deptAchievementDockingList = new ArrayList<>();

}
